/**
 * 后端通用响应格式
 */
export interface ApiResponse<T = any> {
    code: number;
    data: T;
    message: string;
}

export interface RequestOptions<T = any> {
    // 是否显示错误提示
    showError?: boolean;
    // 是否显示成功提示
    showSuccess?: boolean;
    // 成功提示消息（默认使用后端返回message）
    successMessage?: string;
    // 自定义错误处理
    errorHandler?: (error: ApiError) => void;
    // 响应数据转换
    transformResponse?: (data: T) => T;
}

/**
 * 请求方法类型
 */
export type HttpMethod = 'get' | 'post' | 'put' | 'delete' | 'patch';

/**
 * 自定义请求配置
 */
export interface RequestOptions<T = any> {
    // 是否显示错误提示
    showError?: boolean;
    // 是否显示成功提示
    showSuccess?: boolean;
    // 成功提示消息（默认使用后端返回message）
    successMessage?: string;
    // 自定义错误处理
    errorHandler?: (error: ApiError) => void;
    // 响应数据转换
    transformResponse?: (data: T) => T;
}

/**
 * API错误类型
 */
export interface ApiError extends Error {
    code?: number;
    response?: {
        data: ApiResponse;
    };
}